home *** CD-ROM | disk | FTP | other *** search
- /*--------------------------------------------------------------------- */
- /* NAME ................... DATESPAN1 */
- /* FUNCTION ............... CALCULATE THE NUMBER OF DAYS BETWEEN TWO */
- /* DATES. */
- /* */
- /* COMMAND PROCESSING PROGRAM FOR DATESPAN */
- /* COMMAND. */
- /* */
- /* CALLED OBJECTS ......... DATESPAN CLP */
- /* AUTHOR ................. TERRENCE W. MOYER */
- /* DATE ................... NOVEMBER 20, 1986 */
- /* */
- /*--------------------------------------------------------------------- */
- PGM (&DATE1 &DATE2 &SPANTYPE)
- DCL VAR(&DATE1) TYPE(*DEC) LEN(6 0)
- DCL VAR(&DATEA1) TYPE(*CHAR) LEN(6)
- DCL VAR(&DATE2) TYPE(*DEC) LEN(6 0)
- DCL VAR(&DATEA2) TYPE(*CHAR) LEN(6)
- DCL VAR(&DATEN) TYPE(*CHAR) LEN(6)
- DCL VAR(&DAYS) TYPE(*DEC) LEN(6 0)
- DCL VAR(&DAYSA) TYPE(*CHAR) LEN(6)
- DCL VAR(&FLAG) TYPE(*CHAR) LEN(1)
- DCL VAR(&SPANTYPE) TYPE(*DEC) LEN(1 0)
-
- RMVMSG PGMQ(*EXT) CLEAR(*ALL)
-
- IF (&DATE1 = 999999) DO /* *TODAY ENTRY */
- RTVSYSVAL (QDATE) (&DATEA1)
- CHGVAR VAR(&DATE1) VALUE(&DATEA1)
- ENDDO
-
- IF (&DATE1 > &DATE2) DO
- CHGVAR &DATEN &DATE1
- CHGVAR &DATE1 &DATE2
- CHGVAR &DATE2 &DATEN
- ENDDO
-
- CALL DATESPAN PARM(&DATE1 &DATE2 &SPANTYPE &DAYS &FLAG)
-
- IF COND(&FLAG = '*') THEN(SNDPGMMSG +
- MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Error +
- occurred. Check input dates and resubmit +
- command') TOPGMQ(*EXT) MSGTYPE(*INFO))
- ELSE CMD(DO)
- CHGVAR &DATEA1 &DATE1
- CHGVAR &DATEA2 &DATE2
- CHGVAR &DAYSA &DAYS
- SNDPGMMSG MSG('Span of days between: ' *CAT &DATEA1 +
- *CAT ' and ' *CAT &DATEA2 *CAT ': ' *CAT +
- &DAYSA) TOPGMQ(*EXT) MSGTYPE(*INFO)
- ENDDO
- ENDPGM
-
- ENDPGM